/* const obj = {
  install() {
    console.log("@@@install")
  }
}

export default obj */

import Vue from "vue";

// 部分输出
/* export const obj = {
  install() {
    console.log("@@@install")
  }
} */

// 整个输出
export default {
  install(Vue, x, y, z) {
    console.log(Vue, x, y, z);

    // 全局过滤器 全局时 没有's'  filter
    Vue.filter('mySlice', function(val) {
      return val.slice(0, 4)
    });

    // 定义全局指令
    Vue.directive('fbind', {
      // 指令与元素成功绑定时（一上来）
      bind(element, binding) {
        console.log("bind", this);
        element.value = binding.value;
      },
      // 指令所在元素被插入页面时
      inserted(element, binding) {
        console.log("inserted", this);
        element.focus();
      },
      // 指令所在的模板被重新解析时
      update(element, binding) {
        console.log("update", this);
        element.value = binding.value;
      }
    });

    // 定义混入
    Vue.mixin({
      data() {
        return {
          x: 100,
          y: 200
        }
      }
    })

    // 给Vue原型上添加一个方法
    Vue.prototype.hello = ()=>{alert('你好啊！')}
  }
}